今天來聊聊整個以太坊合約應用裡面一個很特殊的東西 token
token
在區塊鏈裡面,我覺得翻譯成 代幣
會比較適合,而不是一般語言常用的翻譯 令牌
,那到底它是什麼意思呢?
簡單來說它也是透過合約去規範多少 eth 換多少 代幣
,也可以規範整個代幣全部的總發行數量,至於這個代幣的數值,就是儲存在合約的紀錄中。講到這邊大家又會問?那是不是任何人都可以自己寫合約自訂自己的代幣?那這樣它有什麼貨幣效力呢? 所以以太坊的合約規範裡面有設定一個東西,叫做ERC20
,它是一個 interface ,只要符合這個 interface ,它就具備完整的貨幣交易機制。
下面來看一下一個 ERC20
的 interface
contract ERC20 {
//總代幣發行量
function totalSupply() constant returns (uint totalSupply);
//owner戶口結餘
function balanceOf(address _owner) constant returns (uint balance);
//傳送代幣到位址
function transfer(address _to, uint _value) returns (bool success);
//從 a 地址 傳送代幣到 b 地址
function transferFrom(address _from, address _to, uint _value) returns (bool success);
function approve(address _spender, uint _value) returns (bool success);
function allowance(address _owner, address _spender) constant returns (uint remaining);
event Transfer(address indexed _from, address indexed _to, uint _value);
event Approval(address indexed _owner, address indexed _spender, uint _value);
}
只要 contract 中有實現上面的東西,它就是一個合法且具備完整交易功能的 token
,透過這個 token
機制,可以使整個 contract
更靈活的應用。
這種作法在很常應用在 ICO (Initial Coin Offering),數字貨幣首次公開募資